package com.diamond.service;

import java.util.List;

import com.diamond.bo.UserFunctionBO;
import com.diamond.po.UserFunctionPO;

/**
 * @author JSmart Tools
 */
 
public interface IUserFunctionService extends IService<UserFunctionPO> {
	
	/**
	 * 新增和修改管理员用户功能
	 * 注：用户功能激活状态默认为'Y'
	 * 用户每次修改功能权限，将之前该用户所拥有的所有的功能权限全部删除（硬删除），然后新增现有的功能权限
	 * @param userFunctionBo
	 * @return
	 * @throws Exception
	 */
	public Boolean saveOrUpdateUserFunction(String userId, List<UserFunctionBO> userFunctionBolist)throws Exception;
	
	/**
	 * 根据userId查询该用户所拥有的激活的功能，即activ_status='Y'
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public List<UserFunctionBO> queryUserFunction(String userId)throws Exception;
	
	/**
	 * 根据userId和functionCode查找出该条用户功能，将用户用功能的激活状态改为'N'
	 * @param userId
	 * @param functionCode
	 * @return
	 * @throws Exception
	 */
	public Boolean delUserFunction(String userId, String[] functionCodes) throws Exception;

}
